#ifndef	___RAM_H___
#define	___RAM_H___

#include "stm32f10x.h"
#include "dma.h"

//指令缓存的最大空间
#define	RCV_BUF_MAX_SIZE		100						//指令最长是100个byte
#define SEND_BUF_MAX_SIZE		RCV_BUF_MAX_SIZE

//数据缓存大小
#define	DATA_BUF_SIZE			50000

//当前使用的增量是
#define RAM_DATABUF_INCREMENT	DMA2_BUFSIZE			//增量根据DMA变量
//函数声明

extern void RAM_Init(void);								//初始化缓存
extern void RAM_SaveDataToRcvBuf(uint8_t dat);			//向缓存中存储数据
extern uint8_t RAM_TakeOutDataFromRcvBuf(void);			//从缓存中取出数据
extern uint16_t RAM_GetRcvBufStatus(void);				//检查接收缓存的状态
extern uint16_t RAM_GetDataLenthOfRcvBuf(void);			//获取缓存中的数据长度
extern void RAM_CleanRcvBuf(void);						//清接收缓存
extern uint32_t RAM_GetRcvBufAddr(void);				//接收缓存的地址

//extern void RAM_SaveDataToSendBuf(uint8_t dat);			//向发送缓存存储数据
extern uint8_t RAM_TakeOutDataFromSendBuf(void);		//从发送缓存取出数据
extern uint16_t RAM_GetSendBufStatus(void);				//获取发送缓存的状态
extern uint16_t RAM_GetDataLenthOfSendBuf(void);		//获取发送缓存中数据的长度
extern void RAM_CleanSendBuf(void);						//清发送缓存
extern void RAM_SavePackageToSendBuf(uint16_t *buf,uint16_t lenth);	//要发送的数据包存到发送buf
extern uint32_t RAM_GetSendBufAddr(void);				//发送缓存的地址

extern uint32_t RAM_GetDataBufAddr(void);				//数据缓存的地址
extern void RAM_SaveDataToDataBuf(uint8_t dat);			//增加一个数据增量
extern uint8_t RAM_TakeOutDataFromDataBuf(void);		//从数据缓存中取数据
extern void RAM_CleanDataBuf(void);						//清数据缓存
extern uint32_t RAM_GetDataLenthOfDataBuf(void);		//获取数据缓存的数据长度

//调试初始化
//extern void RAM_Debug(void);

#endif

